﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetEstadoPedido : IBusinessLogic
    {
        public GetEstadoPedido() { }

        public void Invoke()
        {
            EstadoPedido_Select oEstadoPedidoSelect = new EstadoPedido_Select();
            oEstadoPedidoSelect.EstadoPedido = this.EstadoPedido;
            this.Resultset = oEstadoPedidoSelect.Get();
        }

        public List<EstadoPedido> EstadoPedidoList()
        {
            this.Invoke();

            List<EstadoPedido> listaEstadoPedido = new List<EstadoPedido>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                EstadoPedido oEstadoPedido;
                foreach (DataRow r in dTable.Rows)
                {
                    oEstadoPedido = new EstadoPedido();

                    oEstadoPedido.IdEstadoPedido = Convert.ToInt32(r["idEstadoPedido"]);
                    oEstadoPedido.Descripcion = r["Descripcion"].ToString();
                    oEstadoPedido.FechaAlta = Convert.ToDateTime(r["FechaAlta"]);
                    oEstadoPedido.Activo = Convert.ToBoolean(r["Activo"]);

                    listaEstadoPedido.Add(oEstadoPedido);
                }
            }

            return listaEstadoPedido;
        }

        private EstadoPedido _estadoPedido;

        public EstadoPedido EstadoPedido
        {
            get { return _estadoPedido; }
            set { _estadoPedido = value; }
        }

        private DataSet _resultset;

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }

    public class GetEstadoPedidoDescripcion : IBusinessLogic
    {
        public GetEstadoPedidoDescripcion() { }

        public void Invoke()
        {
            EstadoPedidoDescripcion_Select oEstadoPedidoDescripcionSelect = new EstadoPedidoDescripcion_Select();
            oEstadoPedidoDescripcionSelect.EstadoPedidoDescripcion = this.EstadoPedidoDescripcion;
            this.Resultset = oEstadoPedidoDescripcionSelect.Get();
        }

        public List<EstadoPedidoDescripcion> EstadoPedidoDescripcionList()
        {
            this.Invoke();

            List<EstadoPedidoDescripcion> listaEstadoPedidoDescripcion = new List<EstadoPedidoDescripcion>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                EstadoPedidoDescripcion oEstadoPedidoDescripcion;
                foreach (DataRow r in dTable.Rows)
                {
                    oEstadoPedidoDescripcion = new EstadoPedidoDescripcion();
                    
                    EstadoPedido oEstadoPedido = new EstadoPedido();
                    oEstadoPedido.IdEstadoPedido = Convert.ToInt32(r["idEstadoPedido"]);

                    GetEstadoPedido oGetEstadoPedido = new GetEstadoPedido();
                    oGetEstadoPedido.EstadoPedido = oEstadoPedido;

                    oEstadoPedidoDescripcion.EstadoPedido = oGetEstadoPedido.EstadoPedidoList()[0];

                    Idioma oIdioma = new Idioma();
                    oIdioma.IdIdioma = Convert.ToInt32(r["idIdioma"]);

                    GetIdioma oGetIdioma = new GetIdioma();
                    oGetIdioma.Idioma = oIdioma;

                    oEstadoPedidoDescripcion.Idioma = oIdioma;

                    oEstadoPedidoDescripcion.Descripcion = r["Descripcion"].ToString();

                    listaEstadoPedidoDescripcion.Add(oEstadoPedidoDescripcion);
                }
            }

            return listaEstadoPedidoDescripcion;
        }

        private EstadoPedidoDescripcion _estadoPedidoDescripcion;

        public EstadoPedidoDescripcion EstadoPedidoDescripcion
        {
            get { return _estadoPedidoDescripcion; }
            set { _estadoPedidoDescripcion = value; }
        }

        private DataSet _resultset;

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
